package com.cskaoyan.javase.array._3memory;

/**
 * 定义两个数组：
 *
 * 静态初始化一个数组，输出数组名，元素取值，长度
 * 然后声明第二个数组，把第一个数组的地址赋值给第二个数组。
 * 输出第二个数组的数组名，元素取值，长度
 * 然后给第二个数组赋值，再次输出两个数组的名及元素
 *
 * 注意:
 *      1.new关键字表示一定会在堆上创建一个新的,独立的对象
 *      2.比较运算符"=="和"!=" 去比较对象的引用
 *          比较的是对象的地址
 *          或者换句话说,只有完全是同一个对象时,比较的结果才可能是相等的
 *          这个条件是比较苛刻的,说白了自己才等于自己.
 *
 * @since 09:41
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo5 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        int[] arr3 = new int[3];
        int[] arr2;
        // 将引用arr中的地址赋值给arr2,那么结果是两个引用指向同一个对象
        arr2 = arr;

        arr[0] = 100;
        // 100
        System.out.println(arr2[0]);
        // 0
        System.out.println(arr3[0]);

        // false
        System.out.println(arr == arr3);
        //true
        System.out.println(arr == arr2);

    }
}
